package br.com.jr.rh.dominio;

import java.util.Collection;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import br.com.jr.arq.dao.Persistente;

@Entity
@Table(name = "funcionario", schema="comum")
public class Funcionario implements Persistente{

	// Original props
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "id_funcionario", unique = true, nullable = false)
	private int id;
		
	@Column
	private String matricula;
	
	@Column(name = "numPis")
    private String numPis;
	
	@Column(name = "num_pasep")
    private String numPasep;
	
	@Column(name = "num_carteira_trabalho")
    private String numCarteiraTrabalho;
	
	@Column(name = "data_contratacao")
    private Date dataContratacao;

	@Column(name = "data_desligamento")
    private Date dataDesligamento;
	
	@Column(name = "cargo")
    private String cargo;

	@Column(name = "data_cargo_promocao")
    private Date dataCargoPromocao;
	
	@ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name = "id_pessoa", nullable=false)
    private Pessoa pessoa;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getMatricula() {
		return matricula;
	}

	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}

	public String getNumPis() {
		return numPis;
	}

	public void setNumPis(String numPis) {
		this.numPis = numPis;
	}

	public String getNumPasep() {
		return numPasep;
	}

	public void setNumPasep(String numPasep) {
		this.numPasep = numPasep;
	}

	public String getNumCarteiraTrabalho() {
		return numCarteiraTrabalho;
	}

	public void setNumCarteiraTrabalho(String numCarteiraTrabalho) {
		this.numCarteiraTrabalho = numCarteiraTrabalho;
	}

	public Date getDataDesligamento() {
		return dataDesligamento;
	}

	public void setDataDesligamento(Date dataDesligamento) {
		this.dataDesligamento = dataDesligamento;
	}

	public String getCargo() {
		return cargo;
	}

	public void setCargo(String cargo) {
		this.cargo = cargo;
	}

	public Date getDataCargoPromocao() {
		return dataCargoPromocao;
	}

	public void setDataCargoPromocao(Date dataCargoPromocao) {
		this.dataCargoPromocao = dataCargoPromocao;
	}

	
		public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

		public Date getDataContratacao() {
		return dataContratacao;
	}

	public void setDataContratacao(Date dataContratacao) {
		this.dataContratacao = dataContratacao;
	}

		@Override
	public Collection<String> validar() {
		// TODO Auto-generated method stub
		return null;
	}

}
